package com.zrq.secondkill.service;

import com.zrq.secondkill.error.BusinessException;

public interface PromoService {

    /**
     * 应该先将商品下架,确保同步的库存是正确的
     * 将数据库的库存同步到redis中,活动商品的库存扣减都是在redis中进行的
     *
     * @param promoId 促销活动id
     */
    void publishPromo(Integer promoId) throws BusinessException;

    /**
     * 校验用户信息,商品信息和促销信息,若正确,颁发token
     *
     * @param userId
     * @param itemId
     * @param promoId
     * @return token
     */
    String generatePromoItemToken(Integer userId, Integer itemId, Integer promoId) throws BusinessException;


    /**
     * 校验token是否有效
     *
     * @return token是否有效
     */
    Boolean validatePromoItemToken(String token,Integer userId,Integer itemId);

}
